code: func (s *IdentityService) UpsertHOTP(user string, otp *hotp.HOTP) error {
  	if user == "" {
  		return trace.BadParameter("missing user name")
  	}
  	bytes, err := hotp.Marshal(otp)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	item := backend.Item{
  		Key:   backend.Key(webPrefix, usersPrefix, user, hotpPrefix),
  		Value: bytes,
  	}
  
  	_, err = s.Put(context.TODO(), item)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	return nil
  }
docs: // UpsertHOTP upserts HOTP state for user
  // Deprecated: HOTP use is deprecated, use UpsertTOTP instead.