Hãy xem hướng dẫn này về các giao dịch với PDO.
Về cơ bản, hãy gói đoạn mã đang chạy dài vào:
$dbh->beginTransaction();
...
$dbh->commit();
Và theo trang tài liệu PDO này :
"Khi tập lệnh kết thúc hoặc khi kết nối sắp bị đóng, nếu bạn có một giao dịch chưa thanh toán, PDO sẽ tự động khôi phục giao dịch đó."
Vì vậy, bạn sẽ mất giao dịch đang chờ xử lý khi tập lệnh hết hạn.
Nhưng thực sự, bạn nên thiết kế lại điều này để nó không phụ thuộc vào tập lệnh vẫn tồn tại.