Hvis transaktionen mislykkes af en eller anden grund, stopper koden på den linje, hvor fejlen opstod ende så hopper udførelsen direkte til catch-blokken. Så det er tilstrækkeligt, som du har skrevet det i kodeblok 2.
Bemærk, at du altid skal kassere undtagelsen igen efter tilbagerulning. Ellers vil du aldrig have en idé om, hvad der var et problem. Så det burde være
try{
$stmt = $db->prepare(... 1 ...);
$stmt->execute();
$stmt = $db->prepare(... 2 ...);
$stmt->execute();
$stmt = $db->prepare(... 3 ...);
$stmt->execute();
$db->commit();
return true;
}catch(Exception $e){
$db->rollBack();
throw $e;
}