code: protected void updatePropertiesInternal(
          Iterable<Property> properties,
          Iterable<PropertyDeleteMutation> propertyDeleteMutations,
          Iterable<PropertySoftDeleteMutation> propertySoftDeleteMutations
      ) {
          if (propertyDeleteMutations != null) {
              this.propertyDeleteMutations = new ConcurrentSkipListSet<>();
              for (PropertyDeleteMutation propertyDeleteMutation : propertyDeleteMutations) {
                  removePropertyInternal(
                      propertyDeleteMutation.getKey(),
                      propertyDeleteMutation.getName(),
                      propertyDeleteMutation.getVisibility()
                  );
                  this.propertyDeleteMutations.add(propertyDeleteMutation);
              }
          }
          if (propertySoftDeleteMutations != null) {
              this.propertySoftDeleteMutations = new ConcurrentSkipListSet<>();
              for (PropertySoftDeleteMutation propertySoftDeleteMutation : propertySoftDeleteMutations) {
                  removePropertyInternal(
                      propertySoftDeleteMutation.getKey(),
                      propertySoftDeleteMutation.getName(),
                      propertySoftDeleteMutation.getVisibility()
                  );
                  this.propertySoftDeleteMutations.add(propertySoftDeleteMutation);
              }
          }
  
          for (Property property : properties) {
              addPropertyInternal(property);
          }
      }
docs: this method differs setProperties in that it only updates the in memory representation of the properties