Not able to persist custom user attributes to the DB when running an EventListener on Register Event Type

I have configured a CustomEventListener on my keycloak local instance
In onEvent(Event event) method of EvenListener ,
when Event type of REGISTER occurs - I have made a call to an external service with some data of the new registered user.
That external service sends back some data as response.
then I want to store that response data into the custom user attributes of keycloak user.

the problem here I am facing is whenever event type is REGISTER , the data is not getting stored into the DB ,but when event type is LOGIN the data is getting stored into DB .

Here to persist attributes to the user profile I am using UserModel.setSingleAttribute(Key ,Value) in both event types.

if (EventType.REGISTER.equals(event.getType())) {
			
			System.out.println("Event Occurred of type :" + event.getType());
			System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++");
			
			RealmModel realm = this.model.getRealm(event.getRealmId());
			UserModel newRegisteredUser = this.session.users().getUserById(realm, event.getUserId());
			
			HashMap<String, String> values = new HashMap<String, String>();

			values.put("email", newRegisteredUser.getEmail());
			values.put("name", newRegisteredUser.getUsername());

			ObjectMapper objectMapper = new ObjectMapper();
			String requestBody;
			try {
				requestBody = objectMapper.writeValueAsString(values);

				HttpClient client = HttpClient.newHttpClient();
				HttpRequest request = HttpRequest.newBuilder().uri(URI.create(//extrernal service url string))
						.POST(HttpRequest.BodyPublishers.ofString(requestBody)).build();

				HttpResponse<String> response = client.send(request, BodyHandlers.ofString());

				Map<String, String> map = new HashMap<String, String>();

				// convert JSON string to Map
				map = objectMapper.readValue(response.body(), new TypeReference<HashMap<String, String>>() {
				});
				
                               System.out.println(map);
				
				

				System.out.println("+++++++++++++++++++++++++setting the user attribute values +++++++++++++++====+++++++++++");
				
				newRegisteredUser.setSingleAttribute("webid", map.get("unique_id"));
				newRegisteredUser.setSingleAttribute("pod_url", map.get("service_url"));
				newRegisteredUser.setSingleAttribute("password", map.get("code"));

			} catch (IOException | InterruptedException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			

the same above code written for EventType LOGIN , the flow is executing fine and data is persisting to the database.
Here
I want to set the custom atttributes to the user profile only once when the user registers to the app , not every time he/she logins.

Can anyone suggest how to implement my requirement.