I think it might depend on how you are planning to restore the model and continue the training.
If you restore the model, optimizer, and scheduler and rerun the same code, you would skip the scheduler.step() in the first example.
If you look at the complete training, you would thus use the same learning rate in two epochs, which might not be the desired use case.