Se você quiser que todos os inserts sejam revertidos em caso de erro, utilize apenas uma transaction e exceptions para tratar os erros dos inserts.
try { $banco->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);//Ativa o lançamento de exceptions para erros $banco->beginTransaction(); $create_cid = $banco->prepare($sql); $create_cid->bindValue(':cidade', $txtCidade, PDO::PARAM_STR); $create_cid->bindValue(':fk_uf', $txtUf, PDO::PARAM_INT); $create_cid->execute();//Não há necessidade em verificar o retorno, se não inserir, será lançada uma exception $create_bai = $banco->prepare($sql1); $create_bai->bindValue(':bairro', $txtBairro, PDO::PARAM_STR); $create_bai->bindValue(':fk_cidade', $idCidade, PDO::PARAM_INT); $create_bai->execute();//Não há necessidade em verificar o retorno, se não inserir, será lançada uma exception $banco->commit(); } catch (PDOException $exception) { $banco->rollback(); printf('Não foi possível realizar a operação: %s' , $exception); }