In a large bowl, whisk together flour, sugar, yeast, and salt. Make a well in center.
In a small saucepan, heat milk and butter over medium heat, stirring occasionally, until butter is melted and an instant-read thermometer registers 120°F (49°C) to 130°F (54°C). Add warm milk mixture and 2 eggs (100 grams) to flour mixture, and stir until combined. Cover and let stand for 15 minutes.
Turn out dough onto a heavily floured surface, and knead until dough is smooth and elastic, 6 to 8 minutes. (Dough will still be lightly tacky.) Shape dough into a round.
Spray a large bowl with cooking spray. Place dough in bowl, turning to grease top. Cover and let rise in a warm, draft-free place (75°F/24°C) until doubled in size, 30 to 45 minutes.
Line a baking sheet with parchment paper.
Divide dough into 6 portions (about 110 grams each). On a work surface, using a cupped hand, roll each portion of dough into a tight round; transfer to prepared pan. Lightly flatten each roll with your hand. (Rolls should still be about 1½ inches thick.) Cover and let rise in a warm, draft-free place (75°F/24°C) until puffed, 25 to 30 minutes.
Preheat oven to 400°F (200°C).
In a small bowl, whisk together 1 tablespoon (15 grams) water and remaining 1 egg (50 grams). Lightly brush each roll with egg wash; sprinkle sesame seeds on top as desired.
Bake until golden brown and an instant-read thermometer inserted in center registers 190°F (88°C), 8 to 10 minutes, covering with foil during final 2 minutes of baking to prevent excess browning. Let cool on pan for 10 minutes. Remove from pan, and let cool completely on a wire rack. Store in an airtight container for up to 3 days.