[`BEGIN`] starts a transaction block. Once a transaction is started: - Statements within the transaction are executed sequentially. - A transaction ends with either a [`COMMIT`] or a [`ROLLBACK`] statement. - If all transaction statements succeed and a [`COMMIT`] is issued, all changes are saved. - If all transaction statements succeed and a [`ROLLBACK`] is issued, all changes are discarded. - If an error occurs and either a [`COMMIT`] or a [`ROLLBACK`] is issued, all changes are discarded.