If your user research shows that adding multiple rows is common, then an “Add Guests…” button can open a dialog or mini-litebox for the user to enter the number of rows, with a default number pre-entered (could be 1). However, in many applications, users almost always only need to add one row at a time. Making these users go through a dialog to accept the default of 1 can end up taking more time on average across all users than making other users click “Add Guest” multiple times to add as many rows as they need. Get a distribution of the number of rows added, and you can calculate which design is less effort for the users on average.
Assuming users usually only add one row at a time, and that it’s always feasible (if not easy) to get multiple rows by adding one row at a time, you can still, as a convenience for users, provide an add-multiple-rows functionality in addition to the “Add Guest” button. Because it is rarely used and not strictly required to get the task done, such functionality can be more of an expert shortcut to adding each row one at a time and doesn’t need to be as discoverable:
Split button. You can make the Add Guest button a split button with a drop down arrow beside it that lists common numbers of rows to add (probably low numbers like 2, 3, 4, and 5 are sufficient). The last option in the drop down would be “More…” which opens a dialog for the user to enter an arbitrary number (useful for edge cases where the user needs to add a very large number). This is the most discoverable option.
Row select. If you support multi-selection of existing rows (you probably should), you can have the Add Guest button add as many rows as the user has selected. For example, after the user has added four rows one at a time, the user can select all four rows and click Add Guest to get a total of eight rows. This is fairly common in desktop apps (e.g., MS Word), so it may be more discoverable than you might think, depending on your users. A usability test can tell you if it is for your users.
Typomatic. If the user clicks and holds the Add Guest button (doesn’t lift the finger or release the mouse button), the app can, after a brief delay, start adding rows (e.g., 2 per second) for as long as the user holds down the button, much like holding down on the scroll bar or keyboard key repeats the action. This is best when the user isn’t necessarily after a precise number of rows, and just wants “a bunch.” Deleting a blank row needs to be easy (one click with no verification), so users can quickly correct for overshooting. Discoverability isn't great; users may need training to learn about this "trick."
Expert activation. Alternatively, when the user clicks and holds the Add Guest button, a small box appears prompting the user to type the number of rows to add while holding the button down. There is no OK button; the app adds the entered number of rows when the user releases the button. This one may also need training.
Some of these methods can be combined in the same app.
Providing a hot key or accelerator to add a row is a good idea especially if your users regularly use the app. I personally endorse using the Insert key for this. Because an accelerator is an expert shortcut (has low discoverability, as you note), it should be in addition to the Add Guest button. In fact, you can label the button “Add Guest (Insert key)” to prompt users to use the accelerator.