SPI_commit commits the current transaction. It is approximately equivalent to running the SQL command COMMIT. After a transaction is committed, a new transaction has to be started using SPI_start_transaction before further database actions can be executed.
SPI_commit_and_chain is the same, but a new transaction is immediately started with the same transaction characteristics as the just finished one, like with the SQL command COMMIT AND CHAIN.
These functions can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext.
The man page SPI_commit_and_chain(3) is an alias of SPI_commit(3).