code: def update(self, name=None, update_dict=None, bulk=True, **kwargs):
          action = 'bulk_update_properties'
          request_body = dict()
          for prop_name_or_id, property_value in update_dict.items():
              if is_uuid(prop_name_or_id):
                  request_body[prop_name_or_id] = property_value
              else:
                  request_body[self.property(prop_name_or_id).id] = property_value
          if bulk and len(update_dict.keys()) > 1:
              if name:
                  if not isinstance(name, str):
                      raise IllegalArgumentError("Name of the part should be provided as a string")
              r = self._client._request('PUT', self._client._build_url('part', part_id=self.id),
                                        data=dict(name=name, properties=json.dumps(request_body), **kwargs),
                                        params=dict(select_action=action))
              if r.status_code != requests.codes.ok:
                  raise APIError('{}: {}'.format(str(r), r.content))
          else:
              for property_name, property_value in update_dict.items():
                  self.property(property_name).value = property_value