Знакомлюсь с sqlite3 в python и не совсем понимаю, предусмотрено ли DB API использование знака вопроса для подстановки имени поля при составлении запроса? В документации подобного использования я не видел, равно как и запрета его.
Пример:
execute("UPDATE books SET name=? WHERE id=?", ("New Name", 1))
execute("UPDATE books SET ?=? WHERE id=?", ("name", "New Name", 1))
Тестовый скрипт полностью: https://gist.github.com/anonymous/763eb2d58e1765235ae5aed5f616f661