Jag förstår inte varför du blandar in en cursor när du skall göra update. Om du vill förhindra att din uppdatering inte baseras på felaktigt data så kan du ta med alla gamla kolumnvärden i where i din update. Om ingen post uppdateras så vet du att någon annan har gjort en update baserat på samma värden som i din läsning.
A's uppdatering har alltså tappats bort. Det finns i princip två metoder att hantera detta.
Om du vill att bara en person skall kunna arbeta med en viss post så måste du ha någon form av låsning, dvs i samband med läsningen så sätter man en markering så att om någon annan vill bearbeta denna post så får denne bara läsa den. När den första pesonen har gjort sin update så släpps markeringen.
Det går inte att hantera den typen av låsningar med hjälp av en cursor i en Webapplikation eftersom läsningen och uppdateringen sker i olika sessioner. Om du vill ha den typ av låsning så måste du implementera den själv.
Det är nästan ingen som gör detta eftersom det finns så många felsituationer som man måste hantera.
Det man brukar göra istället är att använda sig av en optimistisk metod, man kontrollerar i samband med uppdateringen att ingen annan har förändrat de data som man försöker uppdater under den tid som gått sedan läsningen skedde. Det gör man med den teknik som jag beskrev i mitt förra inlägg.