CORD-1913: Restore execution of custom service save() methods in attics

Change-Id: I9d585d7da886d8a2c87df4687912c62ef71a412f
(cherry picked from commit aa9a696ca571289104fdb9bc4362d5b7f9303051)
diff --git a/lib/xos-genx/xosgenx/targets/service.xtarget b/lib/xos-genx/xosgenx/targets/service.xtarget
index 7b90aea..69aa81c 100644
--- a/lib/xos-genx/xosgenx/targets/service.xtarget
+++ b/lib/xos-genx/xosgenx/targets/service.xtarget
@@ -64,15 +64,17 @@
       if not self.leaf_model_name:
           self.leaf_model_name = "{{ m.name }}"
 
-      try:
-          self.__xos_save_base(*args, **kwds)
-      except AttributeError:
-          pass
-
       {% for policy,error in xproto_validations(m.options) %}
       policy_{{policy}}_validator(self, None)
       {% endfor %}
-      super({{ m.name }}{{ legacy_tag }}, self).save(*args, **kwds)
+
+      try:
+          base_save_in_attic = self.__xos_save_base(*args, **kwds)
+      except AttributeError:
+          base_save_in_attic = False
+
+      if not base_save_in_attic:
+          super({{ m.name }}{{ legacy_tag }}, self).save(*args, **kwds)
   
   def can_access(self, ctx):
       {% if m.policy %}