A family of Microsoft relational database management systems designed for ease of use.
Your two questions are linked. When you embed a subform within a parent form it is linked to the parent form by the LinkMasterFields and LinkChildFields properties of the subform control. It is this link which enables the subform to show only those rows which relate to the current row in the parent form. When you insert a new row in a subform the linking mechanism automatically inserts the value of the parent form's table's primary key into the relevant foreign key column in the subform's table. In this case the column is ProductID.
Subforms are really just an interface implementation of the underlying relationships between the tables, and are the standard means of inserting data into related tables. How else would you do it? Data should certainly not be entered directly into tables.
The subform's per se won't help when you build reports, but the underlying relationships which they reflect will. You can use subreports in a report in exactly the same way as a subform in a form, but often you will not need to, as you can base a report on a query which joins the tables on the keys, and group the report on the data from a referenced (parent) table so that that shows once only per group and the multiple values from a referencing (child) table show individually within each grouping.
These sort of things are the basic mechanics of how Access works, and something you do need to become familiar with if you are going to use Access to develop your own applications. Like any task you first need to understand how to use the tools provided.