While you are syncing, your client does many things but essentially it downloads & shares blocks and it also validates blocks. To validate a block, the client essentially executes locally all the transactions declared in the block and check the result. If the result is equal to the state of the received block (the hash matches, and so on) then the block is validated and the client go forward.
Because of this, a node actually executes a contract code only if in that block there are transactions that are contract calls (both creation and method calls).
So it's not the EVM that executes code to generate transactions, but on the contrary, the EVM manages all transactions sent by clients to be mined by a miner and all transactions already present into a block to validate it.