「一意のタグのみ」のレシピの場合、私は通常、一意のオブジェクトレシピ、またはその変形を使用します。 http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject 。
これには当然、特定の行が最初に存在するかどうかを判断するために、特定の行に対するSELECTが必要です。データベース固有のコマンドを使用してデータベース側の決定に基づいて行を挿入または更新する「アップサート」手法は、現在ORMでは直接サポートされていません。とにかくPostgresqlを使用していますが、一般的なテーブル式を使用する非常に厄介なシステムを除いて、ネイティブの「アップサート」機能は実際にはサポートされていません。