This is actually a tricky case, as currently MERGE can only consider a single pattern, and not multiple comma-separated patterns. As a result, you could only consider at most two relationship to the candidate node, one each from two existing nodes:
We do have an improvement request in to allow for a multi-pattern MERGE like so:
MERGE (a)-[:REL]->(d:Between_Node), (b)-[:REL]->(d), (c)-[:REL]->(d)
In the meantime, to avoid race conditions, you may want to first do an OPTIONAL MATCH using multiple patterns, and if such a node doesn't exist, lock on all the other nodes involved (APOC's locking procedures would be the easiest way...otherwise you may want to add and then immediately delete a label to engage write locks on each of those nodes), and then OPTIONAL MATCH for that node again (as it may have been created between the time you first checked, and when you took your locks), and if it doesn't exist MERGE the pattern piecemeal to each node in turn.