code: def insert_ignore(self, row, keys, ensure=None, types=None):
          
          row = self._sync_columns(row, ensure, types=types)
          if self._check_ensure(ensure):
              self.create_index(keys)
          args, _ = self._keys_to_args(row, keys)
          if self.count(**args) == 0:
              return self.insert(row, ensure=False)
          return False
docs: Add a ``row`` dict into the table if the row does not exist.
  
          If rows with matching ``keys`` exist they will be added to the table.
  
          Setting ``ensure`` results in automatically creating missing columns,
          i.e., keys of the row are not table columns.
  
          During column creation, ``types`` will be checked for a key
          matching the name of a column to be created, and the given
          SQLAlchemy column type will be used. Otherwise, the type is
          guessed from the row value, defaulting to a simple unicode
          field.
          ::
  
              data = dict(id=10, title='I am a banana!')
              table.insert_ignore(data, ['id'])