If you find yourself doing a lot of explicit transactions, it can be a sign that your schema isn't as normalized as it should be.
How does better normalization reduce the need for explicit transactions?
How does better normalization reduce the need for explicit transactions?