code: def insert(
          self,
          obj=None,
          overwrite=False,
          partition=None,
          values=None,
          validate=True,
      ):
          
          if isinstance(obj, pd.DataFrame):
              from ibis.impala.pandas_interop import write_temp_dataframe
  
              writer, expr = write_temp_dataframe(self._client, obj)
          else:
              expr = obj
  
          if values is not None:
              raise NotImplementedError
  
          if validate:
              existing_schema = self.schema()
              insert_schema = expr.schema()
              if not insert_schema.equals(existing_schema):
                  _validate_compatible(insert_schema, existing_schema)
  
          if partition is not None:
              partition_schema = self.partition_schema()
              partition_schema_names = frozenset(partition_schema.names)
              expr = expr.projection(
                  [
                      column
                      for column in expr.columns
                      if column not in partition_schema_names
                  ]
              )
          else:
              partition_schema = None
  
          ast = build_ast(expr, ImpalaDialect.make_context())
          select = ast.queries[0]
          statement = ddl.InsertSelect(
              self._qualified_name,
              select,
              partition=partition,
              partition_schema=partition_schema,
              overwrite=overwrite,
          )
          return self._execute(statement)
docs: Insert into Impala table. Wraps ImpalaClient.insert
  
          Parameters
          ----------
          obj : TableExpr or pandas DataFrame
          overwrite : boolean, default False
            If True, will replace existing contents of table
          partition : list or dict, optional
            For partitioned tables, indicate the partition that's being inserted
            into, either with an ordered list of partition keys or a dict of
            partition field name to value. For example for the partition
            (year=2007, month=7), this can be either (2007, 7) or {'year': 2007,
            'month': 7}.
          validate : boolean, default True
            If True, do more rigorous validation that schema of table being
            inserted is compatible with the existing table
  
          Examples
          --------
          >>> t.insert(table_expr)  # doctest: +SKIP
  
          # Completely overwrite contents
          >>> t.insert(table_expr, overwrite=True)  # doctest: +SKIP