Add gameObjects to List as objects are instantiated

I have a player who moves in a snap grid form. Every movement my player instantiates a cube where it is standing. How can I add these instantiated cubes to a List as they are instantiated? This way I can refer back to this list to see if a cube exisits at a particualr location. In javascript please

var cube : GameObject; // the cube you want to create
var cubes : Array = new Array(); //list of cubes

function spawnblock()
{
var obj : GameObject = Instantiate(cube, transform.position, transform.rotation);

cubes.Add(obj);
}

endCube = gameObject;
var prefab = gameObject;

    var collide : boolean = false;
    
    function OnCollisionEnter(coll: Collision){   //Colliding with object?
    	if(coll.gameObject.tag=="floor"){
    		collide=true;	
    		Debug.Log("collision On");
    		}
    	else{
    		collide=false;
    		Debug.Log("collision off");
    		}
    }
    function OnCollisionExit(coll: Collision){
    	collide=false;			
    }
    
    
    function Update () {
    	var myPosition = transform.position;
    	if(Input.GetButtonDown("up")){
    		transform.position.y = transform.position.y+1;
    		Instantiate(prefab, transform.position, Quaternion.identity);
    	}
    	if(Input.GetButtonDown("down")){
    		transform.position.y = transform.position.y-1;		
    		Instantiate(prefab, transform.position, Quaternion.identity);
    	}
    	if(Input.GetButtonDown("left")){
    		transform.position.x = transform.position.x-1; 
    		Instantiate(prefab, transform.position, Quaternion.identity);
    	}
    	if(Input.GetButtonDown("right")){
    		transform.position.x = transform.position.x+1;		
    		Instantiate(prefab, transform.position, Quaternion.identity);
    	}
    	
    	if (Input.GetKeyDown (KeyCode.Space)){
    		Instantiate(endCube, transform.position, Quaternion.identity);
    }
}

I would like to store their vector3 locations so I can go back to look if one has already been instantiated at that place. Unless there is another way to just not instantiate an object when I move on top of a cube. I’ve tried the simple if (collide == false) but this does not work because the collision functions seem to be called after movement so a cube is placed every other step regardless if there is a cube there