Instantiated objects becomes child of spawn point

When a ship sinks in my game it hits a deadzone. That deadzone calls a random spawnpoint to generate a prefab from the sunken ship and the prefab is a param to the SpawnABoatAtSpawnPosition().

However, an it is not a big deal but I would like to know why, the newly spawned ship is now a child of the spawnpoint. Why?

Here is the Code for the KillZone:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class KillZoneScript : MonoBehaviour
{
    public SpawnABoat spawnerOne;
    public SpawnABoat spawnerTwo;
    public SpawnABoat spawnerThree;
    public SpawnABoat spawnerFour;
    void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.tag == "EnemyShip")
        {
            GameObject DeadShip = collision.gameObject;
            SpawnABoat randomSpawnpoint = GetRandomSpawnPoint();
            randomSpawnpoint.SpawnABoatAtSpawnpoint(DeadShip);
            Destroy(DeadShip);
        }

        SpawnABoat GetRandomSpawnPoint()
        {
            SpawnABoat randomSpawnpoint;
            int rnd = Random.Range(0, 3);
            if(rnd == 0)
            randomSpawnpoint = spawnerOne;
            else if (rnd == 1)
            randomSpawnpoint = spawnerTwo;
            else if (rnd == 2)
            randomSpawnpoint = spawnerThree;
            else
            randomSpawnpoint = spawnerFour;
            Debug.Log(rnd);
            return randomSpawnpoint;
        }
    }
}

And here is the code for the spawnpoint:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class SpawnABoat : MonoBehaviour
{
    public GameObject myBoat;
    public GameObject spawnPosition;
    // Start is called before the first frame update
    void Start()
    {
            Instantiate(myBoat, transform.position, transform.rotation);   
    }

    public void SpawnABoatAtSpawnpoint(GameObject myNewBoat)
    {
        EnemyID thisBoat = myBoat.GetComponent<EnemyID>();  
        PrefabUtility.InstantiatePrefab(thisBoat.MyPrefab, spawnPosition.transform);
    }
}

I’m not really sure why it does that, but you can get rid of the parent using Transform.SetParent(null) if you need to. thats probably not a satisfying answer but im also not that good at using unity -_-

Heres the function:
public void SetParent(Transform parent, bool worldPositionStays);

Heres the api page for SetParent:

2 year old post but just answering for anyone else looking ig