Ein Abort würde nämlich bei den meisten Scriptsprachen im Backend dazu führen, dass das Script auch sofort beendet wird und dadurch "halbe Buchungen" entstehen können. Damit ist die Datenbasis dann inkonsistent geworden.
Es gibt eine Vielzahl an Gründen, warum etwas schief laufen kann. Dem begegnet man mit Transaktionen und gut ist.