code: func (s *persistentStorage) Update(c context.Context, identity *ProjectIdentity) (*ProjectIdentity, error) {
  	logging.Debugf(c, "update project scoped identity %v", identity)
  	tmp, err := s.lookup(c, identity)
  	switch {
  	case err == nil && *tmp == *identity: // Doesn't need update
  		return identity, nil
  	case err != nil && err != ErrNotFound: // Lookup error to propagate
  		return nil, err
  	}
  
  	if err := ds.Put(c, identity); err != nil {
  		return nil, err
  	}
  	return identity, nil
  }
docs: // Update allows an identity to be updated, e.g. when the service account email changes.