You'll need to commit() or rollback() to put the DB back into READY state; or the DB can be "busy" or "write locked" waiting. If you write a full transaction sequence like "BEGIN TRANSACTION; INSERT...; UPDATE...; SELECT...; END TRANSACTION;" the commit() is embedded. You just need to worry about a DB.Error() and call Rollback() to undo any possible pending things avoiding it to become busy/locked. For example, a bad select clause will generate an error and end the sequence without reaching the "END TRANSACTION". You will notice the fail looking into DB.ERROR(), then take some (fast) action, call DB.Rollback(), and move on.
That's why I would expect people not doing things like:
MsgBox("Error: " + DB.ErrorMessage)
And instead something like:
Dim e As String = DB.ErrorMessage
MsgBox("Error: " + e)