public function deleteItem(StorableInterface $item = null)
    {
        if ($item !== null) {
            $this->setModel($item);
        }

        $model = $this->model();

        if (!$model->id()) {
            throw new UnexpectedValueException(
                sprintf('Can not delete "%s" item. No ID.', get_class($this))
            );
        }

        $key   = $model->key();
        $table = $this->table();
        $query = '
            DELETE FROM
                `'.$table.'`
            WHERE
                `'.$key.'` = :id';

        $driver = $this->db()->getAttribute(PDO::ATTR_DRIVER_NAME);
        if ($driver == self::MYSQL_DRIVER_NAME) {
            $query .= "\n".'LIMIT 1';
        }

        $binds = [
            'id' => $model->id()
        ];

        $result = $this->dbQuery($query, $binds);

        if ($result === false) {
            return false;
        } else {
            return true;
        }
    }