per la ricetta "solo tag univoci" di solito uso la ricetta oggetto unico, o una sua variante:http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject .
Ciò richiede naturalmente un SELECT su una riga particolare per dire se esiste prima. La tecnica "upsert", che utilizza comandi specifici del database per INSERIRE o AGGIORNARE una riga in base a una determinazione lato database, non è supportata direttamente dall'ORM in questo momento. Sei comunque su Postgresql che in realtà non supporta alcuna funzionalità nativa "upsert" tranne un sistema molto imbarazzante che utilizza espressioni di tabella comuni.