Instantiate 1 object after 2 objects collide. ( C# )

How can I make it so that when 2 objects collide, they will be destroyed and instantiate only 1 object at their contact point?

These 2 objects are also clones of each other.

Here is my current code:
When they collide, they will instantiate an object. This code instantiates an object per object though so they instantiate a total of 2 objects instead of 1.

public Vector3 rocket;

void OnCollisionEnter2D(Collision2D col)
	{
	if (col.gameObject.CompareTag ("rocketTag"))
		{
			//Assigns the 'Vector3 'rocket'' to the position of the collision.
			ContactPoint2D contactPositioned = col.contacts[0];
			Vector3 contactPosition = contactPositioned.point;
			rocket = new Vector3(contactPosition.x, contactPosition.y);

			//This instantiates the Explosion object on the rocket's position / Vector3.
			Instantiate(Resources.Load("Explosion"), rocket, Quaternion.identity);
			
			//Destroys the rocket.
			Destroy (gameObject);

			//When 2 rockets collide, they instantiate a total of 2 explosions, but I only need 1 explosion.
		}
	}

Thanks! I saw someone asking about the same question here though, but it was in Javascript, and when I tried to convert it to C#, it didn’t work. I also couldn’t ask them there because it was locked and it was also from 2 years ago, so I just decided to make another one.

How about comparing the ID? Something like:

if (GetInstanceID() < col.gameObject.GetInstanceID())
{
//Instantiate code here
}

Could go either way as far as the greater than, less than part.