You can enter either via db(query).insert(name=value, ...) or by a CSV file. Both are convenient. I suppose you could argue that CSV is convenient if your data are dumped from some other db without computing an intermediate value. If your data are less clean, perhaps, or you need to do some complex intermediate logic and computation on the fly to come up with a value to insert into the db, or just for all around flexibility, then db(query).insert(...) works great. Both are equally useful. I use both all the time. Mostly, it depends on the source of data and how ready they are to insert into the db without me having to muck with them.
--