code: def create_marker_table(self):
          
          connection = self.connect()
          connection.autocommit = True
          cursor = connection.cursor()
          if self.use_db_timestamps:
              sql = """ CREATE TABLE {marker_table} (
                        update_id TEXT PRIMARY KEY,
                        target_table TEXT,
                        inserted TIMESTAMP DEFAULT NOW())
                    """.format(marker_table=self.marker_table)
          else:
              sql = """ CREATE TABLE {marker_table} (
                        update_id TEXT PRIMARY KEY,
                        target_table TEXT,
                        inserted TIMESTAMP);
                    """.format(marker_table=self.marker_table)
  
          try:
              cursor.execute(sql)
          except psycopg2.ProgrammingError as e:
              if e.pgcode == psycopg2.errorcodes.DUPLICATE_TABLE:
                  pass
              else:
                  raise
          connection.close()
docs: Create marker table if it doesn't exist.
  
          Using a separate connection since the transaction might have to be reset.