Dê uma olhada este tutorial nas transações com DOP.
Basicamente, envolva o código de longa execução em:
$dbh->beginTransaction();
...
$dbh->commit();
E de acordo com esta página do documento PDO :
"Quando o script termina ou quando uma conexão está prestes a ser fechada, se você tiver uma transação pendente, o PDO a reverterá automaticamente."
Assim, você perderá a transação que estava pendente quando o script expirou.
Mas, na verdade, você deve redesenhar isso para que não dependa do script permanecer vivo.