Зачем существует rollback()?
При этом обе операции откатятся Это rollback и есть. Читайте документацию к используемым библиотекам!
rollback()
Roll back to the start of any pending transaction. Closing a connection without committing the changes first will cause an implicit rollback to be performed.
Changed in version 2.5: if the connection is used in a with statement, the method is automatically called if an exception is raised in the with block.
(The connection class)
Rollback нужен всегда по тому что нам, на самом деле, никто не может гарантировать что операция будет выполнена. То что вы все это делали и уверены что оно будет работать - так себе аргумент