Either when the input is empty or you filter out all the input data you leverage "to_dbal_table_insert" function it should probably just do nothing, but I received an Runtime exception "Bulk data cannot be empty" instead.
df()
->withEntry('price', ref('node')->xpath('price')->domElementValue())
->filter(ref('price')->notEquals(lit(''))->isTrue())
->write(to_dbal_table_insert(...))
->run();