Странно. Я думал, что sqlite всегда был в транзакции, явно созданной вами или неявно созданной sqlite:
http://www.sqlite.org/lang_transaction.html
Итак, я полагаю, что ошибка означает, что вы не инициировали транзакцию ... и если это то, что вам нужно знать, то для sqlite вполне нормально ожидать, что вы справитесь с ней. Конечно, не очень удобно, но я думаю, это стоимость простого API. = /