@Test
  public void doPutOrCreate3rdRetryShouldBeUpdate() {
    when(
        region.basicUpdate(eq(event), eq(true), eq(false), anyLong(), eq(true), eq(true), eq(true)))
            .thenReturn(false);
    when(
        region.basicUpdate(eq(event), eq(false), eq(true), anyLong(), eq(true), eq(true), eq(true)))
            .thenReturn(false);
    message.basicOperateOnRegion(event, region);
    verify(region, times(1)).basicUpdate(eq(event), eq(true), eq(false), anyLong(), eq(true),
        eq(true), eq(true));
    verify(region, times(1)).basicUpdate(eq(event), eq(false), eq(true), anyLong(), eq(true),
        eq(true), eq(true));
    verify(region, times(1)).basicUpdate(eq(event), eq(false), eq(false), anyLong(), eq(true),
        eq(true), eq(false));
  }
AUO's doPutOrCreate() will try with create, then update.
If retry again, it should be an update with ifNew==false and ifOld==false
It should not retry with create again
geode-core/src/test/java/org/apache/geode/internal/cache/UpdateOperationJUnitTest.java