public function insert(array $rows): int
    {
        try {
            $query = (clone $this)->addInsert($rows)->apply($this->database->getTablePrefixer());
            $statements = $this->database->getGrammar()->compileInsert($query);

            $count = 0;
            foreach ($statements as $statement) {
                $count += $this->database->insert($statement->getSQL(), $statement->getBindings());
            }

            return $count;
        } catch (\Throwable $exception) {
            return $this->handleException($exception);
        }
    }