Migrate to S3Represent

IS_ONE_OF is by far not the only case where bulk is called.

lookup_rows and represent_row are the lazy methods, whereas bulk is always called, even repeatedly. The standard (and the intended method) is to implement the lazy methods in subclasses, not the primary API - only when you have a very good reason to override the default bulk method (e.g. special aggregation), then this is an option. But in this case, all you do in the custom bulk is to delegate - and that, out of all things, should /not/ happen during the bulk call.

You can solve this way more elegantly - I would even argue that the whole class isn't needed at all ;)