def update(self, values, **context):
        """
        Updates the model with the given dictionary of values.

        :param values: <dict>
        :param context: <orb.Context>

        :return: <int>
        """
        schema = self.schema()
        column_updates = {}
        other_updates = {}
        for key, value in values.items():
            try:
                column_updates[schema.column(key)] = value
            except orb.errors.ColumnNotFound:
                other_updates[key] = value

        # update the columns in order
        for col in sorted(column_updates.keys(), key=lambda x: x.order()):
            self.set(col, column_updates[col], **context)

        # update the other values
        for key, value in other_updates.items():
            try:
                self.set(key, value, **context)
            except orb.errors.ColumnValidationError:
                pass

        return len(values)
Updates the model with the given dictionary of values.

        :param values: <dict>
        :param context: <orb.Context>

        :return: <int>