public function insertRows(string $table, array $colVals, int $identityIncrement = 1): BulkInsertResult
    {
        // check whether the query needs to be split into multiple batches
        $batches = Insert::batchRows($colVals, $this->options->getMaxBoundParams(), $this->options->getMaxInsertRows());
        $ids = [];
        $affected = 0;

        foreach ($batches as $batch) {
            $result = $this->insertBatch($table, $batch, $identityIncrement);
            $ids = array_merge($ids, $result->getIds());
            $affected += $result->getAffected();
        }

        return new BulkInsertResult($ids, $affected, count($batches));
    }