Lihat tutorial ini pada transaksi dengan PDO.
Pada dasarnya bungkus kode yang sudah berjalan lama di:
$dbh->beginTransaction();
...
$dbh->commit();
Dan menurut halaman dokumen PDO ini :
"Saat skrip berakhir atau saat koneksi akan ditutup, jika Anda memiliki transaksi yang belum diselesaikan, PDO akan secara otomatis mengembalikannya. "
Jadi Anda akan kehilangan transaksi yang tertunda saat skrip habis.
Tapi sungguh, Anda harus mendesain ulang ini agar tidak bergantung pada skrip yang tetap hidup.