### Elasticsearch Version

main

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

MacOS

### Problem Description

When there are 2 or more concurrent `_update` requests issued, one of them may fail with `ResourceAlreadyExistsException` exception which is misleading.


### Steps to Reproduce

1. Spawn a number of `_update` requests at the same time
2. Look at the results of these requests
3. Observe `ResourceAlreadyExistsException` being thrown in the case of conflict

### Logs (if relevant)

_No response_
x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/persistence/IndexBasedTransformConfigManager.java
searchRequest,
            ActionListener.<SearchResponse>wrap(searchResponse -> {
                List<TransformStoredDoc> stats = new ArrayList<>();
                String previousId = null;
                for (SearchHit hit : searchResponse.getHits().getHits()) {
                    
                    if (hit.getId().equals(previousId) == false) {
                        previousId = hit.getId();
                        BytesReference source = hit.getSourceRef();
                        try (
                            InputStream stream = source.streamInput();
                            XContentParser parser = XContentFactory.xContent(XContentType.JSON)
                                .createParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, stream)
                        ) {
                            stats.add(TransformStoredDoc.fromXContent(parser));
                        } catch (IOException e) {
                            listener.onFailure(new ElasticsearchParseException("failed to parse transform stats from search hit", e));
                            return;
                        }
                    }
                }
                listener.onResponse(stats);
            }, listener::onFailure),
            client::search
        );
    }
    @Override
    public void refresh(ActionListener<Boolean> listener) {
        executeAsyncWithOrigin(
            client.threadPool().getThreadContext(),