Если я понимаю, что вы делаете, Python не будет проблемой. Выполнение оператора внутри транзакции не создает накопительное состояние в Python. Это будет сделано только на самом сервере базы данных.
Когда вы фиксируете, вам необходимо убедиться, что фиксация произошла, поскольку наличие большого пакетного коммита может конфликтовать с промежуточными изменениями в базе данных. Если фиксация завершится неудачно, вам придется заново запустить пакет.
Это единственная проблема, с которой я сталкиваюсь при работе с большими пакетами и Python / ODBC (и это даже не проблема Python, поскольку у вас будет эта проблема независимо от того.)
Теперь, если вы создаете весь SQL в памяти, а затем просматриваете представление памяти, это может иметь больше смысла. Тем не менее, 5000 строк текста на современной машине на самом деле не так уж и много. Если вам нужно обрабатывать на два порядка больше, вам, возможно, придется пересмотреть свой процесс.