Though a lot of classes treat bang methods as “a method that modifies the object in place”, I like the description of bang methods from the Eloquent Ruby book better:
In practice, Ruby programmers reserve
! to adorn the names of methods that do
something unexpected, or perhaps a bit
dangerous
So in this case, the “unexpected” result is that an exception is raised instead of just failing and returning false.