Same query works for any number Countries/Companies. Think of MERGE as attempting a MATCH on the pattern, and if no match is found, a CREATE of the pattern. Each Country node will have it's own child nodes. Run the same code for two or more sets of data. If your .csv file has data for two (or more) countries you will see that many number of subgraphs.
Please change this: MERGE (c)-[:HAS_COUNTRY]->(b) to MERGE (a)-[:HAS_TREE]->(c) Final relationships: MERGE (b)-[:HAS_COMPANY]->(a) MERGE (a)-[:HAS_TREE]->(c) (b)-->(a)-->(c)