Edit: So I found the problem but unsure at to whether this solution would work or not. Since I find a lot of what I've read people usually use, target.DeathCheck(src). Not sure how the target variable will effect it inside the parenthesis.
Code:
mob
var
death/check
proc
Attack(mob/target)
check.DeathCheck(target)
death
proc
DeathCheck(mob/target)
You'll also need to create an instance of the datum before you actually use it. That's just how any object works.
It also doesn't make sense to define the datum as /death/mob. Datums aren't namespaces or interfaces or magical; they're the objects from which atoms inherit. They're the same as atoms, just with less extra built-in stuff.