Insert a new record into the database

        :param _values: The new record values
        :type _values: dict or list

        :param values: The new record values as keyword arguments
        :type values: dict

        :return: The result
        :rtype: bool

def insert(self, _values=None, **values):
        """
        Insert a new record into the database

        :param _values: The new record values
        :type _values: dict or list

        :param values: The new record values as keyword arguments
        :type values: dict

        :return: The result
        :rtype: bool
        """
        if not values and not _values:
            return True

        if not isinstance(_values, list):
            if _values is not None:
                values.update(_values)

            values = [values]
        else:
            values = _values
            for i, value in enumerate(values):
                values[i] = OrderedDict(sorted(value.items()))

        bindings = []

        for record in values:
            for value in record.values():
                bindings.append(value)

        sql = self._grammar.compile_insert(self, values)

        bindings = self._clean_bindings(bindings)

        return self._connection.insert(sql, bindings)