public function insertRow(array $data, $position = 0, $insertType = self::INSERT_NODE)
    {
        $num = $this->fetchAll()->count();

        if ($num && $position) {
            $row = $this->getPosition($position);
            $lft_rgt = ($insertType === self::INSERT_NODE) ? $row->getRgt() : $row->getLft();
        } else {
            $lft_rgt = 0;
        }

        $this->updateTree($lft_rgt, '+', 2);

        $data[self::COLUMN_LEFT] = $lft_rgt + 1;
        $data[self::COLUMN_RIGHT] = $lft_rgt + 2;

        $insertId = parent::insert($data);

        return $insertId;
    }