import sqlite3

con = sqlite3.connect(":memory:", autocommit=False)
try:
    with con:
        con.execute("CREATE TABLE stock (item TEXT PRIMARY KEY, quantity INTEGER CHECK(quantity >= 0))")
    try:
        with con:
            con.execute("INSERT INTO stock VALUES (?, ?)", ("Notebook", 5))
            con.execute("INSERT INTO stock VALUES (?, ?)", ("Pencil", -1))
    except sqlite3.IntegrityError:
        print("Batch rolled back")
    print("Rows:", con.execute("SELECT COUNT(*) FROM stock").fetchone()[0])
finally:
    con.close()
