I think it depends on the complexity. For a simple rectangular collision, it's not worth to use an external library, but as soon as collisions get more complex and are of a common type, I would rather use something existing than reinvent the wheel. Libraries that focus on such functionality also tend to be more optimized and bug-free than own implementations.