Usually, you would update the model after each batch, but that’s not a hard rule as explained.
Depending on your use case, you might want to accumulate the gradients and update the model after a couple of batches (or all of them).