tree data UPDATE expect valid data for merge

Fixes sysrepo/sysrepo#2848
diff --git a/src/tree_data_common.c b/src/tree_data_common.c
index 930e90c..105c586 100644
--- a/src/tree_data_common.c
+++ b/src/tree_data_common.c
@@ -90,8 +90,10 @@
     }
 
     if (dup_inst->used == dup_inst->inst_set->count) {
-        /* we have used all the instances */
-        *inst = NULL;
+        if (lysc_is_dup_inst_list((*inst)->schema)) {
+            /* we have used all the instances */
+            *inst = NULL;
+        } /* else just keep using the last (ideally only) instance */
     } else {
         assert(dup_inst->used < dup_inst->inst_set->count);