Looking at the [RAISE](https://www.sqlite.org/syntax/raise-function.html) function it is not clear what each one of the options does. For example, if I use `ABORT` inside a transaction, it will not be rolled back? Or, if I use `ROLLBACK` outside a transaction, will it fail as there was no transaction active? And how's `FAIL` different? Is there some more detailed documentation? The only one which appears obvious is the `IGNORE` option although its purpose escapes me. Examples?