title: Postgresql Python: ignore duplicate key exception
body: <p>I insert items using psycopg2 in the following way:</p>
  
  <pre><code>cursor = connection.cursor()
  for item in items:
      try:
          cursor.execute(
              "INSERT INTO items (name, description) VALUES (%s, %s)  RETURNING id",
              (item[0], item[1])
          )
          id = cursor.fetchone[0]
          if id is not None:
              cursor.execute(
                  "INSERT INTO item_tags (item, tag) VALUES (%s, %s)  RETURNING id",
                  (id, 'some_tag')
              )    
      except psycopg2.Error:
          connection.rollback()
          print("PostgreSQL Error: " + e.diag.message_primary)
          continue
      print(item[0])
  connection.commit()
  </code></pre>
  
  <p>Obviously, when an item is already in the database, the <code>duplicate key exception</code> is being thrown. Is there a way to ignore the exception? Is the whole transaction is going to be aborted when the exception is thrown? If yes, then what is the best option to rewrite the query, maybe using batch inserting?</p>