The COMMIT statement ends a transaction, saving any changes to the data so
that they become visible to subsequent transactions. Also, unlocks metadata
changed by current transaction. If autocommit is set to 1, an implicit commit
is performed after each statement. Otherwise, all transactions which don't end
with an explicit COMMIT are implicitly rollbacked and the changes are lost.
The ROLLBACK statement can be used to do this explicitly.

The required syntax for the COMMIT statement is as follows:

COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

COMMIT is the more important transaction terminator, as well as the more
interesting one. The basic form of the COMMIT statement is simply the keyword
COMMIT (the keyword WORK is simply noise and can be omitted without changing
the effect).

The optional AND CHAIN clause is a convenience for initiating a new
transaction as soon as the old transaction terminates. If AND CHAIN is
specified, then there is effectively nothing between the old and new
transactions, although they remain separate. The characteristics of the new
transaction will be the same as the characteristics of the old one — that is,
the new transaction will have the same access mode, isolation level and
diagnostics area size (we'll discuss all of these shortly) as the transaction
just terminated.

RELEASE tells the server to disconnect the client immediately after the
current transaction.

There are NO RELEASE and AND NO CHAIN options. By default, commits do not
RELEASE or CHAIN, but it's possible to change this default behavior with the
completion_type server system variable. In this case, the AND NO CHAIN and NO
RELEASE options override the server default.

URL: https://mariadb.com/kb/en/commit/