You don't need JSONB for this - doing this with plain JSON is simpler and already faster than individual inserts for most bindings in my experience.
I typically do bulk inserts using a single JSON argument like this:
WITH ins AS (SELECT e.value ->> 'id', e.value ->> 'name', e.value ->> 'age' FROM json_each(?) e)
INSERT INTO data (id, name, age)
SELECT * FROM ins
The same approach can be used for bulk updates and deletes as well.