docs: def _update(self, tree):
          """ Run an UPDATE statement """
          tablename = tree.table
          table = self.describe(tablename, require=True)
          kwargs = {}
  
          if tree.returns:
              kwargs["returns"] = "_".join(tree.returns)
          else:
              kwargs["returns"] = "NONE"
  
          visitor = Visitor(self.reserved_words)
          updates = UpdateExpression.from_update(tree.update)
          kwargs["expression"] = updates.build(visitor)
          if tree.where:
              constraints = ConstraintExpression.from_where(tree.where)
              kwargs["condition"] = constraints.build(visitor)
          kwargs["expr_values"] = visitor.expression_values
          kwargs["alias"] = visitor.attribute_names
          return self._query_and_op(tree, table, "update_item", kwargs)