static disconnect(ctx, client) {
        if (typeof ctx.options.disconnect === 'function') {
            try {
                ctx.options.disconnect({client, dc: ctx.dc});
            } catch (e) {
                // have to silence errors here;
                // cannot allow unhandled errors while disconnecting from the database,
                // as it will break the disconnection logic;
                Events.unexpected('disconnect', e);
            }
        }
    }
@event disconnect
@description
Global notification of releasing a database connection back to the connection pool, i.e. releasing the virtual connection.

However, when releasing a direct connection (created by calling {@link Database#connect Database.connect} with parameter
`{direct: true}`), this event represents a physical disconnection.

The library will suppress any error thrown by the handler and write it into the console.

@param {{}} e Event Properties

@param {external:Client} e.client - $[pg.Client] object that represents connection with the database.

@param {*} e.dc - Database Context that was used when creating the database object (see {@link Database}).

@example

const initOptions = {

    // pg-promise initialization options...

    disconnect(e) {
       const cp = e.client.connectionParameters;
       console.log('Disconnecting from database:', cp.database);
    }

};