docs: private void createRelationshipforCollectionOfComponents(AssociationKey associationKey, String collectionRole, String[] embeddedColumnNames, Object[] embeddedColumnValues, StringBuilder queryBuilder) {
  		int offset = associationKey.getEntityKey().getColumnNames().length;
  		if ( isPartOfEmbedded( collectionRole ) ) {
  			String[] pathToEmbedded = appendEmbeddedNodes( collectionRole, queryBuilder );
  			queryBuilder.append( " MERGE (e) -[r:" );
  			appendRelationshipType( queryBuilder, pathToEmbedded[pathToEmbedded.length - 1] );
  		}
  		else {
  			queryBuilder.append( " MERGE (owner) -[r:" );
  			appendRelationshipType( queryBuilder, collectionRole );
  		}
  		appendProperties( queryBuilder, associationKey.getMetadata().getRowKeyIndexColumnNames(), offset );
  		offset += associationKey.getMetadata().getRowKeyIndexColumnNames().length;
  		queryBuilder.append( "]-> " );
  		queryBuilder.append( "(target:" );
  		queryBuilder.append( EMBEDDED );
  		queryBuilder.append( ":" );
  		escapeIdentifier( queryBuilder, associationKey.getMetadata().getAssociatedEntityKeyMetadata().getEntityKeyMetadata().getTable() );
  
  		int index = 0;
  		int embeddedNumber = 0;
  
  		EmbeddedNodesTree tree = createEmbeddedTree( collectionRole, embeddedColumnNames, embeddedColumnValues, offset );
  		if ( !hasRowIndex( associationKey ) ) {
  			appendPrimitiveProperties( queryBuilder, index, tree );
  		}
  		queryBuilder.append( ")" );
  
  		// Append relationships representing embedded properties
  		Map<String, EmbeddedNodesTree> children = tree.getChildren();
  		boolean first = true;
  		for ( Entry<String, EmbeddedNodesTree> entry : children.entrySet() ) {
  			index = 0;
  			String relationshipType = entry.getKey();
  			EmbeddedNodesTree child = entry.getValue();
  			if ( first ) {
  				first = false;
  			}
  			else {
  				queryBuilder.append( ", (target)" );
  			}
  			queryBuilder.append( " - [:" );
  			appendRelationshipType( queryBuilder, relationshipType );
  			queryBuilder.append( "] -> " );
  			queryBuilder.append( "(a" );
  			queryBuilder.append( embeddedNumber++ );
  			queryBuilder.append( ":" );
  			queryBuilder.append( EMBEDDED );
  			appendPrimitiveProperties( queryBuilder, index, child );
  			queryBuilder.append( ")" );
  		}
  		if ( hasRowIndex( associationKey ) && !tree.getProperties().isEmpty() ) {
  			queryBuilder.append( " SET target = " );
  			appendPrimitiveProperties( queryBuilder, index, tree );
  		}
  		queryBuilder.append( " RETURN r" );
  	}