Технически это не так.
PHP закроет соединение с базой данных при выходе.
База данных откатит все активные транзакции при закрытии.
Однако маловероятно, что такой случай когда-либо случится в вашем коде, потому что сейчас это неправильно. Вы должны обернуть всю транзакцию в попытку, а не только операции с базой данных. В противном случае, если исключение будет сгенерировано в вашей части «условия», оно прервет транзакцию, но не будет перехвачено.
Кроме того, использование exit само по себе является плохой практикой, а транзакция в десять раз больше.
Но если вам это действительно нужно (на самом деле это не так), тогда сделайте что-то вроде
try {
$pdo->beginTransaction();
$stmt = $pdo->prepare($query1);
$stmt->execute($x);
if (condition) {
throw new Exception("Stopped on condition");
}
$x['column1'] = 'string1';
$x['column2'] = 'string2';
$x['column3'] = 'string3';
$stmt = $pdo->prepare($query2);
$stmt->execute($x);
$pdo->commit();
} catch (Throwable $e) {
$pdo->rollBack();
throw->$e;
}