Well, you can always do add_btdb_ut_only!(Ke::AbstractMatrix{<:Real}, B::AbstractMatrix{<:Real}, Jac_w::Real, D::{<:Real}, DB::{<:Real}). The point is that the previous signature was simply narrower than (presumably) the function required.
Note, however, that if you want to support arbitrary types like this, you should be more careful in implementing the function too. e.g. if you need to allocate an array within the function, you should compute its type from the arguments rather than simply assuming it should be Float64.
Type-generic programming takes a bit of practice, but is worth it in the long run.