code: func (s *IdentityService) UpsertPasswordHash(username string, hash []byte) error {
  	userPrototype, err := services.NewUser(username)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	user, err := services.GetUserMarshaler().GenerateUser(userPrototype)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	err = s.CreateUser(user)
  	if err != nil {
  		if !trace.IsAlreadyExists(err) {
  			return trace.Wrap(err)
  		}
  	}
  	item := backend.Item{
  		Key:   backend.Key(webPrefix, usersPrefix, username, pwdPrefix),
  		Value: hash,
  	}
  	_, err = s.Put(context.TODO(), item)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	return nil
  }
docs: // UpsertPasswordHash upserts user password hash