implement sqlite transactions via savepoints