Hi David,
I should have perhaps made clear this was a saved function, so my
understanding is ROLLBACK can't be used as its implicit.
I am pretty certain "ROLLBACK" cannot be used but the "ROLLBACK TO SAVEPOINT" can - they are and do two different things. If you can issue a savepoint inside a stored function it would stand to reason you must be able to rollback to that named savepoint from within the same - nothing external would even known about it.
David J.