Я просто собираюсь попробовать использовать транзакции с оболочкой FMDB SQLite iOS.
Документация немного расплывчато о транзакциях, но, бегло ознакомившись с некоторыми функциями, я пришел к следующей логике:
[fmdb beginTransaction];
// Run the following query
BOOL res1 = [fmdb executeUpdate:@"query1"];
BOOL res2 = [fmdb executeUpdate:@"query2"];
if(!res1 || !res2) [fmdb rollback];
else [fmdb commit];