code: def update_or_create(self, location, contact_addresses, with_status=False,
              overwrite_existing=False, **kw):
          
          updated, created = False, False
          location_ref = location_helper(location)
          if location_ref in self:
              for loc in self:
                  if loc.location_ref == location_ref:
                      if overwrite_existing:
                          loc['addresses'][:] = contact_addresses
                          updated = True
                      else:
                          for ca in contact_addresses:
                              if ca not in loc.addresses:
                                  loc['addresses'].append(ca)
                                  updated = True
          else:
              self.data.setdefault('multi_contact_addresses', []).append(
                  dict(addresses=contact_addresses, location_ref=location_ref))
              created = True
          
          if updated or created:
              self.update()
          if with_status:
              return self, updated, created
          return self
docs: Update or create a contact address and location pair. If the
          location does not exist it will be automatically created. If the
          server already has a location assigned with the same name, the
          contact address specified will be added if it doesn't already
          exist (Management and Log Server can have multiple address for a
          single location).
          
          :param list(str) contact_addresses: list of contact addresses for
              the specified location
          :param str location: location to place the contact address in
          :param bool overwrite_existing: if you want to replace existing
              location to address mappings set this to True. Otherwise if
              the location exists, only new addresses are appended
          :param bool with_status: if set to True, a 3-tuple is returned with 
              (Element, modified, created), where the second and third tuple
              items are booleans indicating the status
          :raises UpdateElementFailed: failed to update element with reason
          :rtype: MultiContactAddress