Für das Rezept "nur eindeutige Tags" verwende ich normalerweise das Rezept für eindeutige Objekte oder eine Variante davon:http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject .
Dies erfordert natürlich ein SELECT gegen eine bestimmte Zeile, um festzustellen, ob sie zuerst existiert. Die „Upsert“-Technik, bei der datenbankspezifische Befehle zum Einfügen oder Aktualisieren einer Zeile basierend auf einer datenbankseitigen Bestimmung verwendet werden, wird derzeit nicht direkt vom ORM unterstützt. Sie sind sowieso auf Postgresql, das eigentlich keine native "Upsert"-Funktion unterstützt, außer einem sehr umständlichen System, das allgemeine Tabellenausdrücke verwendet.