Объяснение
Пул соединений ограничивает одновременную работу с БД. Параметризованный SQL отделяет данные от синтаксиса. Транзакция должна использовать одно соединение до COMMIT или ROLLBACK.
Задача для самостоятельного решения
Можно ли выполнять BEGIN и UPDATE через случайные соединения пула?
Показать разбор ответа
Нет: они могут оказаться в разных сессиях. Получите client, выполните транзакцию на нём и освободите в finally.