docs: def create(self, schema, overwrite=False):
      """ Create the table with the specified schema.
  
      Args:
        schema: the schema to use to create the table. Should be a list of dictionaries, each
            containing at least a pair of entries, 'name' and 'type'.
            See https://cloud.google.com/bigquery/docs/reference/v2/tables#resource
        overwrite: if True, delete the table first if it exists. If False and the table exists,
            creation will fail and raise an Exception.
      Returns:
        The Table instance.
      Raises:
        Exception if the table couldn't be created or already exists and truncate was False.
      """
      if overwrite and self.exists():
        self.delete()
      if not isinstance(schema, _schema.Schema):
        # Convert to a Schema object
        schema = _schema.Schema(schema)
      try:
        response = self._api.tables_insert(self._name_parts, schema=schema._bq_schema)
      except Exception as e:
        raise e
      if 'selfLink' in response:
        self._schema = schema
        return self
      raise Exception("Table %s could not be created as it already exists" % self._full_name)