Для простых приложений этого достаточно (одна транзакция на запрос).Но для более сложных сценариев вам нужно будет использовать транзакции на более детальном уровне.
В принципе, я всегда оборачиваю свои транзакции обновления по мере необходимости.
В любом случае ваш подход не мешает вам открытьновая транзакция в середине запроса, если это необходимо.Так что я в порядке.
И кое-что о возможных проблемах параллелизма ... Если вы можете предвидеть проблемы, решайте их, иначе я бы не стал слишком беспокоиться об этом.Будьте проще и не увлекайтесь преждевременной оптимизацией