To je typický závod. Zkontroluje, zda klíč, který jste vložili, existuje; pokud ne, udělá vložku, ale klíč mezi počítání a vložku může vložit někdo jiný. Transakce tomu nebrání.
Zdá se, že kód to očekává a snaží se s tím vypořádat, ale když jsem se podíval na kód pro řešení tohoto případu, okamžitě jsem viděl, že byl poškozen. Hlášeno zde:http://code.djangoproject.com/ticket/11569
Důrazně doporučuji držet se backendu memcache.