Det er et typisk løb. Den kontrollerer, om den nøgle, du indsatte, findes; hvis den ikke gør det, laver den et indstik, men en anden kan indsætte nøglen mellem tæller og indstik. Transaktioner forhindrer ikke dette.
Koden ser ud til at forvente dette og forsøge at håndtere det, men da jeg kiggede på koden til at håndtere denne sag, kunne jeg straks se, at den var i stykker. Rapporteret her:http://code.djangoproject.com/ticket/11569
Jeg vil kraftigt anbefale, at du holder dig til memcache-backend.