Да, если вы используете SQLITE_STATIC, вы должны оставить содержимое в покое до завершения транзакции. Более того, вы должны оставлять содержимое в покое, пока вы не отменит параметр к чему-либо другому или пока не освободите оператор.
SQLITE_TRANSIENT запрашивает, чтобы Sqlite сделал внутреннюю копию строки, которой он будет управлять надлежащим образом. Учитывая ваше описание, это, вероятно, то, что вы должны использовать. В противном случае вам придется управлять своей собственной копией каждой строки для каждого оператора.