Я думаю, что вы забыли :
для функции обновления. Это работает для меня.
def update_sell(margin): with conn: # below works with "sell + 1", but fails with "sell + margin" #c.execute("UPDATE level SET sell = sell + 1") c.execute("UPDATE level SET sell = sell + :margin", {"margin":margin})