The rule writes output to a tmp folder that snakemake isn't aware of, so it has issues if it contains an incomplete run (e.g. tckgen complains that a file already exists and errors out)
One quick fix is to use -force to the tckgen command.
Other fixes involve refactoring a bit to make use of tmp dir differently, e.g.. could use shadow for the rule, and have shadow_dir set.. or make the tmp output folder part of the workflow (a rule output) and use tmp in the path..