para la receta de "solo etiquetas únicas" suelo usar la receta de objeto único, o alguna variante de la misma:http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject .
Esto, naturalmente, requiere un SELECCIONAR contra una fila en particular para saber si existe primero. La técnica de "upsert", que utiliza comandos específicos de la base de datos para INSERTAR o ACTUALIZAR una fila en función de una determinación del lado de la base de datos, no es compatible directamente con el ORM en este momento. Estás en Postgresql de todos modos, que en realidad no admite ninguna característica nativa de "upsert", excepto un sistema muy incómodo que usa expresiones de tabla comunes.