def update(self, item, encrypt=True, **kwargs):
        """
        Updates the item based on the current values of the dictionary passed
        in.
        """
        response = self._new_response()
        if self._check_supported_op('update', response):
            if self._prototype_handler.check(item, 'update', response):
                if encrypt:
                    self._encrypt(item)
                params = {'Item': item}
                self._call_ddb_method(self.table.put_item,
                                      params, response)
                if response.status == 'success':
                    response.data = item
        response.prepare()
        return response