Both.
Let's use your simple example.
If you do a product breakdown, and use the visits metric (and the user hit both products in the same visit):
| | Visits | UVs | PVs |
| (Total) | 1 | 1 | 2 |
| Product A | 1 | 1 | 1 |
| Product B | 1 | 1 | 1 |
When you look at each product individually, Product A had 1 Visits. Product B also had one Visit. But the same user, on the same visit hit BOTH products, so at a Total level, you still only have had 1 visit. In this case, both the Visits and UVs shouldn't add up, they are de-duplicated at the Total Level, because it was still only a single user on a single visit. The Page Views for each product count as 1, and because each product was on a separate view/page, the totals will add up to 2.
If we were to look at a similar behaviour, but say that the same user hit Product A on their first visit, then later on hit Product B on their second visit, the data would look like:
| | Visits | UVs | PVs |
| (Total) | 2 | 1 | 2 |
| Product A | 1 | 1 | 1 |
| Product B | 1 | 1 | 1 |
The UVs are still de-duplicated, because the visitor is the same, but the products were viewed on separate visits, and therefore, each visit is counted against the product that was viewed, and the total visits becomes 2 since there were 2 separate visits.
Any dimension broken down this way should act in the same manner.... Visits and UVs (which can roll up based on the context) will show against the all rows of data that are relevant, but the totals will be de-duplicated. PVs don't roll up (well sort of... products can technically have multiple items tracked on the same view - such as if you were looking at Cart Views for instance... every product in the cart would be on the same page view, and in this scenario, the PVs would also de-duplicate), but for the most part... one item per page, the totals should add up to the total shown.