import sqlite3 db = sqlite3.connect(":memory:") db.execute("create table foo (x text primary key)") c = db.cursor(); try: c.execute("insert into foo values('x')") c.execute("insert into foo values('x')") db.commit() except db.Error: print "Error" db.rollback() print c.execute("select * from foo ").fetchall() db.close(); .