public ClickHouseTransaction createTransaction(ClickHouseNode server, int timeout) throws ClickHouseException {
        return new ClickHouseTransaction(ClickHouseChecker.nonNull(server, "Server"), createSessionId(),
                timeout > 0 ? timeout : server.config.getTransactionTimeout(), null);
    }
Creates a new transaction. {@link #createSessionId()} will be called
to start a new session just for the transaction.

@param server  non-null server
@param timeout transaction timeout in seconds
@return non-null new transaction
@throws ClickHouseException when failed to create transaction
clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseRequestManager.java