I have a custom post type "Product" and want to create a post category "A Product Name" automatically on creation of a new Product so that the post category would have the same name as the new Product and so that all relevant posts could be linked to the custom post type. 

I was trying to hook into the wp_publish_post but apparently it has been renamed to {$new_status}_{$post->post_type} so I imagine it would be publish_product?

        // adds category with name of product automatically
    add_filter( 'publish_product', 'my_publish_product' );
    
    function my_publish_product( $post ) {
        global $wpdb;
        $post_type = 'product'; 
    
        if ( ! $post = get_post( $post ) )
            return;
    
        if ( 'publish' == $post->post_status )
            return;
    
        $wpdb->update( $wpdb->posts, array( 'post_status' => 'publish' ), array( 'ID' => $post->ID ) );
    
        clean_post_cache( $post->ID );
    
        $old_status = $post->post_status;
        $post->post_status = 'publish';
        wp_transition_post_status( 'publish', $old_status, $post );
    
        /** This action is documented in wp-includes/post.php */
        do_action( 'edit_post', $post->ID, $post );
        /** This action is documented in wp-includes/post.php */
        do_action( "save_post_{$post->post_type}", $post->ID, $post, true );
        /** This action is documented in wp-includes/post.php */
        do_action( 'save_post', $post->ID, $post, true );
        /** This action is documented in wp-includes/post.php */
        do_action( 'wp_insert_post', $post->ID, $post, true );
    
        if ( 'post' != $post_type ) {
            return;
        } else {
            add_action( 'wp_insert_post', 'my_wp_insert_post' );
            return;
        }
    }
    function my_wp_insert_post( $post_id )
    {
        $my_cat = array(
      'cat_ID' => 0,
      'cat_name' => 'new product name', // needs dynamic value
      'category_parent' => 'products',
      'taxonomy' => 'category' 
      );
    
        wp_insert_category($my_cat);
    }